package ngat.oss.simulation;

/** Parameters for generating Phase2Models.*/
public class Phase2ModelGeneratorParams {

    public String modelName;

    public String root;

    public String site;

    public double latitude;
    public double longitude;

    public int nProps;

    public int nGroups;

    public int nObs;

    public long time;
    public long backage;
    public long foreage;
	
    public double flexGroupFraction;
    public double monitorGroupFraction;
    
    // Mon Groupp cycle distribution.
    public double monitorGroupPeriodFrac1;
    public long   monitorGroupPeriodMean1;
    public long   monitorGroupPeriodSigma1;
    
    public double monitorGroupPeriodFrac2;
    public long   monitorGroupPeriodMean2;
    public long   monitorGroupPeriodSigma2;
    
    public double monitorGroupPeriodFrac3;
    public long   monitorGroupPeriodMean3;
    public long   monitorGroupPeriodSigma3;

    // MinInt Group interval distribution.
    public double intervalGroupIntervalFrac1;
    public long   intervalGroupIntervalMean1;
    public long   intervalGroupIntervalSigma1;
    
    public double intervalGroupIntervalFrac2;
    public long   intervalGroupIntervalMean2;
    public long   intervalGroupIntervalSigma2;

    public double intervalGroupIntervalFrac3;
    public long   intervalGroupIntervalMean3;
    public long   intervalGroupIntervalSigma3;

    public double execProbability;

    // Condition fractions.
    public double groupPoorSeeingFraction;
    public double groupAverageSeeingFraction;
    public double groupPhotomFraction;
    public double groupDarkFraction;
    
    // Observation distributions.
    public int    exposureMaxCount;
    public double observationExposureFrac1;
    public double observationExposureMean1;
    public double observationExposureSigma1;

    public double observationExposureFrac2;
    public double observationExposureMean2;
    public double observationExposureSigma2;

    // Accounting
    public double minBudget;
    public double maxBudget;

    public double minUsedFraction;
    public double maxUsedFraction;
    
    // Priority (proposals go 1(high) to 3(low) - can add more as required
    public double proposalPriorityFracP1;
    public double proposalPriorityFracP2;
    public double proposalPriorityFracP3;

    // Priority (groups go 0(low) to 5(high) + STD and BGR - can add more as required
    public double groupPriorityFracP1;
    public double groupPriorityFracP2;
    public double groupPriorityFracP3;
    public double groupPriorityFracP4;
    public double groupPriorityFracP5;
    public double groupPriorityFracBgr;  // background
    public double groupPriorityFracStd; // standards
    

    public Phase2ModelGeneratorParams() {}


}
